package com.whm.hrmanagement.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.whm.common.annotation.Excel;
import com.whm.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 个人计划表对象 oa_target_tracking
 * 
 * @author whm
 * @date 2024-02-13
 */
@Data
public class OaTargetTracking extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 姓名或标识，代表参与者的名称 */
    @Excel(name = "姓名或标识，代表参与者的名称")
    private Long name;

    /** 目标名称，描述要达到的具体目标 */
    @Excel(name = "目标名称，描述要达到的具体目标")
    private String targetName;

    /** 计划完成日，目标的预期完成日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划完成日，目标的预期完成日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dueDate;

    /** 行动步骤，详细描述实现目标所需的步骤 */
    @Excel(name = "行动步骤，详细描述实现目标所需的步骤")
    private String actionSteps;

    /** 完成率，以百分比形式记录目标完成的进度 */
    @Excel(name = "完成率，以百分比形式记录目标完成的进度")
    private BigDecimal completionRate;

    /** 完成情况说明，描述目标当前的完成状态或其他备注 */
    @Excel(name = "完成情况说明，描述目标当前的完成状态或其他备注")
    private String completionNotes;

    /** 目标状态，表示目标的当前状态，如待处理、进行中或已完成 */
    @Excel(name = "目标状态，表示目标的当前状态，如待处理、进行中或已完成")
    private String targetStatus;

    /** 姓名或标识，代表参与者的名称 */
    @Excel(name = "姓名或标识，代表参与者的名称")
    private String nameTxt;
    @Excel(name = "所属部门")
    private Long departmentName;

    /** 所属部门 */
    @Excel(name = "所属部门")
    private String departmentNameTxt;
    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setName(Long name)
    {
        this.name = name;
    }

    public Long getName()
    {
        return name;
    }
    public void setTargetName(String targetName)
    {
        this.targetName = targetName;
    }

    public String getTargetName()
    {
        return targetName;
    }
    public void setDueDate(Date dueDate)
    {
        this.dueDate = dueDate;
    }

    public Date getDueDate()
    {
        return dueDate;
    }
    public void setActionSteps(String actionSteps)
    {
        this.actionSteps = actionSteps;
    }

    public String getActionSteps()
    {
        return actionSteps;
    }
    public void setCompletionRate(BigDecimal completionRate)
    {
        this.completionRate = completionRate;
    }

    public BigDecimal getCompletionRate()
    {
        return completionRate;
    }
    public void setCompletionNotes(String completionNotes)
    {
        this.completionNotes = completionNotes;
    }

    public String getCompletionNotes()
    {
        return completionNotes;
    }

    public Long getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(Long departmentName) {
        this.departmentName = departmentName;
    }

    public String getDepartmentNameTxt() {
        return departmentNameTxt;
    }

    public void setDepartmentNameTxt(String departmentNameTxt) {
        this.departmentNameTxt = departmentNameTxt;
    }

    public void setTargetStatus(String targetStatus)
    {
        this.targetStatus = targetStatus;
    }

    public String getTargetStatus()
    {
        return targetStatus;
    }
    public void setNameTxt(String nameTxt)
    {
        this.nameTxt = nameTxt;
    }

    public String getNameTxt()
    {
        return nameTxt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("name", getName())
            .append("targetName", getTargetName())
            .append("dueDate", getDueDate())
            .append("actionSteps", getActionSteps())
            .append("completionRate", getCompletionRate())
            .append("completionNotes", getCompletionNotes())
            .append("targetStatus", getTargetStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("nameTxt", getNameTxt())
            .append("departmentName", getDepartmentName())
            .append("departmentNameTxt", getDepartmentNameTxt())
            .toString();
    }
}
